package vivo

// 请求公共参数
type commonParam struct {
	Method         string `json:"method"`         // 接口名称
	Access_key     string `json:"access_key"`     // access_key
	Timestamp      string `json:"timestamp"`      // 时间戳
	Format         string `json:"format"`         // 响应格式。默认值：json。
	V              string `json:"v"`              // API协议版本，可选值：1.0。
	Sign_method    string `json:"sign_method"`    // 签名的摘要算法，可选值为：hmac。
	Sign           string `json:"sign"`           // API输入参数签名结果
	Target_app_key string `json:"target_app_key"` // 被调用的目标key，可选值：developer
}

// 请求公共结果
type VivoResult struct {
	Code    int    // 返回码
	SubCode string // 请求子返回码
	Msg     string // 结果描述
}

// 应用详情结果
type VivoAppInfoResult struct {
	VivoResult
	Data VivoAppInfo // 查询成功后返回该字段
}

// 应用详情
type VivoAppInfo struct {
	CnName                string // 中文名称
	PackageName           string // 包名
	AppType               string // 类型  请参照文档中心字典项
	SaleStatus            string // 上架状态  请参照文档中心字典项
	Status                int    // 审核状态  请参照文档中心字典项
	UnPassReason          string // 审核不通过原因
	VersionCode           string // 版本号
	VersionName           string // 版本名称
	Icon                  string // icon图片查看地址
	ApkSize               string // APK 文件大小
	Classify              string // 分类（游戏分类字典，应用分类字典）
	CopyrightApproval     string // 版号批复文件查看地址
	CopyrightList         string // 版权证明查看地址，多个用逗号分隔
	DetailDesc            string // 应用简介
	Disclaimer            string // 免责函查看地址
	IsbnNumber            string // 网络游戏出版物
	MainTitle             string // 主标题
	ScheOnlineTime        string // 上架时间 （格式：yyyy-MM-dd  HH:mm:ss）
	OnlineType            string // 上架类型 请参照文档中心字典项
	Remark                string // 备注
	Screenshot            string // 截图查看地址 ，多个用逗号分隔
	SellType              string // 资费方式 请参照文档中心字典项
	SubTitle              string // 副标题
	TestType              string // 测试类型  请参照文档中心字典项
	TestStartTime         string // 测试开始时间 （格式   yyyy-MM-dd HH:mm:ss）
	TestEndTime           string // 测试结束时间 （格式   yyyy-MM-dd  HH:mm:ss）
	UpdateDesc            string // 新版说明
	Video                 string // 游戏视频查看地址
	SpecialQualifications string // 特殊资质文件 多个用逗号分隔
	Ecopyright            string // 电子版权证书
	Safetyreport          string // 安全报告评估
	PrivateSelfCheck      string // 隐私权限自检
	NetworkCultureLicense string // 网络文化经营许可证号
	GameEditionDepartment string // 游戏版署号
	CompatibleDevice      string // 兼容设备（该字段目前为强制校验暂未生效）1、手机 2、手机和平板
	CustomerService       string // 对外联系方式 (请填写座机电话/邮箱号，如：座机020-xxxxxx   )
	ForceUpdate           string // 强制更新 0 非强制 1 强制
	RateAge               string // 游戏适龄，填写如下选项中一项 8 12 16 18
	VideoCover            string // 上传视频之后，为必填 则不需上传	视频封面地址
	SimpleDesc            string // 一句话简介
	GamePrivileges        string // 游戏特权 1、启动 2、不启动
	IsCalculateCost       string // 是否需要计费 0 否 1 是
	CalculateCostDescribe string // 计费点描述
	CommitmentLetter      string // 承诺函文件
	QualifiedReport       string // 合规报告文件

}

// 正式环境路径
const VIVO_PRODUCT_URL = "https://developer-api.vivo.com.cn/router/rest"

// 测试环境路径
const VIVO_TEST_URL = "https://sandbox-developer-api.vivo.com.cn/router/rest"

// 承诺函文件
const method_commitment_letter = "app.upload.commitment.letter"

// 应用图标
const method_upload_icon = "app.upload.icon"

// 应用截图上传
const method_upload_screenshot = "app.upload.screenshot"

// apk包上传
const method_upload_apk = "app.upload.apk.app"

// 特殊资质上传
const method_upload_qualification = "app.upload.qualification"

// 电子版权证书
const method_upload_ecopyright = "app.upload.ecopyright"

// 安装评估报告
const method_upload_safety_report = "app.upload.safety.report"

// 查询应用详情
const method_app_details = "app.query.details"

// 创建应用
const method_create_app = "app.sync.create.app"

// 更新应用
const method_update_app = "app.sync.update.app"

// apk上传返回结果
type VivoApkResult struct {
	VivoResult
	Data UploadApkResult
}

// apk上传详情
type UploadApkResult struct {
	PackageName  string // 包名
	Serialnumber string // 文件上传成功的后流水号
	VersionCode  string // 版本号
	VersionName  string // 版本名称
	FileMd5      string // 文件md5值
}

// apk文件上传返回业务码
var uploadApkSubCode = map[string]string{
	"12010": "当前更新应用正在审核，不允许更新",
	"12022": "当前更新应用待上架，不允许更新",
	"13001": "上传的文件不存在，上传失败",
	"13002": "其它开发者已上传过该应用，文件上传失败",
	"13003": "请检查文件是否正常，文件上传失败",
	"13004": "文件上传服务异常，请稍后再试",
	"15001": "您上传的apk包名与当前包名不一致",
	"15002": "targetSdkversion版本低于之前版本",
	"15003": "您上传的APK应用版本号低于之前上传的版本",
	"15005": "apk包解析失败",
	"15006": "您上传apk包不是应用apk包，请核对后在上传",
	"15007": "apk包上传失败，请稍后再试",
	"15008": "APK包中的应用名称不能超过60字符",
	"15009": "apk包md5与请求参数不一致",
	"15011": "文件格式错误，请上传apk文件",
	"20008": "必填参数不能为空",
}

// apk更新业务码
var updateApkSubCode = map[string]string{
	"12002": "应用不存在，更新失败",
	"12006": "应用主标题一年修改超过的4次，更新失败",
	"12010": "应用正在审核中，不允许操作",
	"12022": "当前更新应用待上架，不允许更新",
	"15009": "apk包md5值与请求参数不一致",
	"15010": "您上传的apk版本号低于之前上传的版本",
	"15012": "apk版本号与请求参数版本号不一致",
	"18007": "附件的流水号错误，未查询到上传的附件信息",
	"18013": "流水号错误，未查询到上传的附件信息 （多张附件上传中，存在一些流水号有误）",
	"20005": "应用异常，请联系vivo开放平台进行处理",
	"20002": "流水号错误，未查询到上传的apk包信息",
	"20007": "参数为空",
	"20008": "必要参数字段为空",
	"20009": "请上传3-5张清晰截图",
	"20010": "副标题不为空，主标题也不能为空",
	"20011": "副标题为空，应用主标题不能包含特殊符号，结尾可存在一个+号",
	"20012": "主副标题都不为空时不能包含特殊符号",
	"20013": "主标题长度不能超过20个字符",
	"20014": "主标题+副标题长度不能超过20个字符",
	"20015": "备注信息内容长度不符合要求，10~200个字符",
	"20016": "新版描述文本内容长度不符合要求，5~200个字符",
	"20017": "详情描述内容长度不符合要求，50~1000个字符",
	"20018": "应用分类类型不合法",
	"20019": "请求参数格式错误",
	"20020": "icon流水号错误未查询到上传的icon信息",
	"20021": "网络文化经营许可证号不超过100个字符",
	"21001": "更新包名属于游戏包，不能进行应用更新",
	"21002": "应用更新失败，请稍后再试",
	"21003": "应用资料正在审核中，请审核完后再操作更新应用",
	"21004": "合同已过期或未签署,请登录vivo开发平台签署合同后再更新",
	"22005": "请上传1-5张版权证明文件",
	"22009": "上架类型参数不合法",
	"22010": "上架类型为定时上架，上架时间不能为空",
	"22011": "上架时间不能小于当前时间",
}
